Manipulate[
(* This was inspired by the "Parametric Trace" demonstration posted by Richard Mercer on the Wolfram Demonstration Project website. I'm not really sure if there is much left here similar to what he posted, but that gave me the basic idea that I started from.  *)

Module[{zoomScale,viewDomain,howBig,blankGraph,showPlot1,showPlot2,showPlot3},
howBig=200;howBig2=80;
zoomScale[factor_]=(factor^3);
viewDomain[var_]:={
{var,
-zoomScale[zoomFactor]+viewPt[[1]],zoomScale[zoomFactor]+viewPt[[1]]},
{-zoomScale[zoomFactor]+viewPt[[2]],zoomScale[zoomFactor]+viewPt[[2]]}};
blankGraph=ParametricPlot[{0,0},{t,0,0.1},PlotRange->{viewDomain[t][[2]],viewDomain[t][[2]]},AxesOrigin->{0,0},AspectRatio->1,ImageSize->howBig];
blankGraph2=ParametricPlot[{t,0},{t,0,8},Ticks->False,ImageSize->howBig2];
paramSubst={A->paramA,B->paramB,C->paramC};

Grid[{{
Show[{
If[!(tCurrent2==tMin)||wholeGraph2,
{ParametricPlot[Tooltip[{xFunction2,yFunction2}/.paramSubst],{t,tMin,If[wholeGraph2,tMax,tCurrent2]},PlotRange->{viewDomain[t][[2]],viewDomain[t][[2]]},AxesOrigin->{0,0},AspectRatio->1,ImageSize->howBig,PlotStyle->Blue],Graphics[{PointSize[Large],Blue,Tooltip[Point[{xFunction2,yFunction2}/.paramSubst/.t->tCurrent2],{tCurrent2,{xFunction2,yFunction2}/.paramSubst/.t->tCurrent2}]}]},blankGraph],
If[!(tCurrent1==tMin)||wholeGraph1,
{ParametricPlot[Tooltip[{xFunction1,yFunction1}/.paramSubst],{t,tMin,If[wholeGraph1,tMax,tCurrent1]},PlotRange->{viewDomain[t][[2]],viewDomain[t][[2]]},AxesOrigin->{0,0},AspectRatio->1,ImageSize->howBig,PlotStyle->Red],Graphics[{PointSize[Large],Red,Tooltip[Point[{xFunction1,yFunction1}/.paramSubst/.t->tCurrent1],{tCurrent1,{xFunction1,yFunction1}/.paramSubst/.t->tCurrent1}]}]},blankGraph]}
],
Column[{
showPlot1=DeleteCases[Flatten[{
If[!(tCurrent1==tMin)||wholeGraph1,ParametricPlot[{t,yFunction1}/.paramSubst,{t,tMin,If[wholeGraph1,tMax,tCurrent1]},PlotStyle->Red]],
If[!(tCurrent2==tMin)||wholeGraph2,ParametricPlot[{t,yFunction2}/.paramSubst,{t,tMin,If[wholeGraph2,tMax,tCurrent2]},PlotStyle->Blue]]}],Null];
If[Length[showPlot1]>0,Show[showPlot1,Ticks->False,ImageSize->{howBig2,howBig2},AxesLabel->{t,y},PlotRange->All]],

showPlot2=DeleteCases[Flatten[{
If[!(tCurrent1==tMin)||wholeGraph1,ParametricPlot[{t,xFunction1}/.paramSubst,{t,tMin,If[wholeGraph1,tMax,tCurrent1]},PlotStyle->Red]],
If[!(tCurrent2==tMin)||wholeGraph2,ParametricPlot[{t,xFunction2}/.paramSubst,{t,tMin,If[wholeGraph2,tMax,tCurrent2]},PlotStyle->Blue]]}],Null];
If[Length[showPlot1]>0,Show[showPlot2,Ticks->False,ImageSize->{howBig2,howBig2},AxesLabel->{t,x},PlotRange->All]],

If[Length[showPlot1]==0&&Length[showPlot2]==0,Column[{blankGraph2,blankGraph2}]]
}]
}}]],
Style["Graph 1 (Red)"],
{{xFunction1,Sin[2t],"x = "}},
{{yFunction1,Cos[3t],"y = "}},
{{tCurrent1,0.,"t"},0,tMax,Appearance->"Labeled"},Delimiter,
Style["Graph 2 (Blue)"],
{{xFunction2,Sin[t],"x = "}},
{{yFunction2,Cos[t],"y = "}},
{{tCurrent2,0.,"t"},0,tMax,Appearance->"Labeled"},Style["Zoom"],
{{zoomFactor,1.2,""},6,0.1,ControlType->VerticalSlider,ControlPlacement->Left},
{{wholeGraph1,False,"Show All 1"},{True,False},ControlPlacement->Right},
{{wholeGraph2,False,"Show All 2"},{True,False},ControlPlacement->Right},
{{viewPt,{0,0},""},{-20,-20},{20,20},ControlPlacement->Right},
{{tMin,0.,"Start value for t"},ControlPlacement->Bottom},
{{tMax,10.,"Max value for t"},ControlPlacement->Bottom},Delimiter,
{{paramA,1,"(positive integers) A"},0,50,1,Appearance->"Labeled",ControlPlacement->Bottom},
{{paramB,1,"(positive/negative integers) B"},-10,10,1,Appearance->"Labeled",ControlPlacement->Bottom},
{{paramC,0,"(reals from -1 to 1) C"},-1,1,Appearance->"Labeled",ControlPlacement->Bottom}
]